Modern computing devices have become ubiquitous tools for personal, business, and social uses. As such, many modern computing devices are capable of connecting to various data networks, including the Internet and corporate intranets, to retrieve and transmit/receive data communications (i.e., network packets) from remote computing devices (e.g., servers, databases, etc.). Multiple remote computing devices (i.e., from the perspective of a client computing device) may be networked together to form a data center, wherein one or more remote computing devices are typically provisioned to perform particular network functions (e.g., packet inspection, intrusion detection, and firewalls). While traditional remote computing devices have included dedicated hardware to perform the particular network functions, network functions are becoming increasingly virtualized. For example, network functions virtualization (NFV) is a network architecture concept being relied upon by data center administrators to build dynamic, virtualized networks using virtual machines (VMs). As the virtualized network functions are being increasingly performed on VMs, the virtualized network functions can be executed on off-the-shelf servers with general purpose processors.
Virtualized network functions, or service functions, can be dynamically chained together to form a service function chain in a process referred to as service chaining. In a service function chain, each service function is performed by one or more VMs spun specifically to perform a particular service function of the service function chain. Which service functions are included in a service function chain may be tailored to a property associated with a network packet (e.g., payload type, network packet overhead). For example, an administrator of a data center may define a service function chain of security service functions (e.g., a virtualized firewall function, a virtualized intrusion detection function, etc.), each of which may be configured to process, in a particular order, network packets received from a computing device. However, processing the network packets in such a serial-based order may introduce latency and bottlenecking through multiple service functions of the service function chain. For example, the slowest service function in the service function chain becomes the limiter to performance scaling.